# 使用 Node.js v22.18.0 作为构建环境
FROM node:22.18.0 as build

WORKDIR /app

# 安装 pnpm
RUN npm install -g pnpm

# Skip TS type-checks in build scripts that honor these envs
ENV VUE_TSC_SKIP_TYPECHECK=1
ENV SKIP_TYPECHECK=1

# 增加 Node.js 内存限制，避免构建时内存溢出
ENV NODE_OPTIONS=--max-old-space-size=4096

# 复制 package.json 和 pnpm 锁文件
COPY package.json pnpm-lock.yaml* ./

# 只安装依赖（利用 Docker 缓存层）
RUN pnpm install --frozen-lockfile --ignore-scripts

# 复制项目文件
COPY . .

# 构建静态文件
RUN pnpm run build

# 生产环境使用 nginx
FROM nginx

# 删除默认配置
RUN rm /etc/nginx/conf.d/default.conf

# 复制 nginx 配置
ADD default.conf /etc/nginx/conf.d/default.conf

# 复制构建产物到 registration_admin 目录
COPY --from=build /app/dist/ /usr/share/nginx/html/registration_admin/

# 设置文件权限
RUN chmod 775 -R /usr/share/nginx/html/registration_admin

# 暴露端口
EXPOSE 80/tcp